From ed428891a15b941912eb94fa07e54ac11e2093d4 Mon Sep 17 00:00:00 2001 From: tsteven4 <13596209+tsteven4@users.noreply.github.com> Date: Sun, 14 May 2023 14:25:04 -0600 Subject: [PATCH] add testing for kml:dateTimeType. (#1112) and fix a related bug. Note that we incorrectly, for kml:dateTimeType, force values without time zone qualifiers to UTC. We do not test the optional gYearMonth time zone qualifer. We do not test the optional gYear time zone qualifer. We do not test the optional date time zone qualifer. --- gpx.cc | 2 +- reference/xsddatetime.kml | 50 +++++++++++++++++++++++++++++++++++ reference/xsddatetime~kml.csv | 6 +++++ testo.d/kml.test | 5 ++++ 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 reference/xsddatetime.kml create mode 100644 reference/xsddatetime~kml.csv diff --git a/gpx.cc b/gpx.cc index 7b499a7d6..4e591b33e 100644 --- a/gpx.cc +++ b/gpx.cc @@ -436,7 +436,7 @@ xml_parse_time(const QString& dateTimeString) *pointstr = '\0'; } - int year = 0, mon = 0, mday = 0, hour = 0, min = 0, sec = 0; + int year = 0, mon = 1, mday = 1, hour = 0, min = 0, sec = 0; gpsbabel::DateTime dt; int res = sscanf(timestr, "%d-%d-%dT%d:%d:%d", &year, &mon, &mday, &hour, &min, &sec); diff --git a/reference/xsddatetime.kml b/reference/xsddatetime.kml new file mode 100644 index 000000000..6fcb15986 --- /dev/null +++ b/reference/xsddatetime.kml @@ -0,0 +1,50 @@ + + + + + gYear (YYYY) + + 1997 + + + -116.865460,36.460850,-55.60 + + + + gYearMonth (YYYY-MM) + + 1997-07 + + + -116.865460,36.460850,-55.60 + + + + date (YYYY-MM-DD) + + 1997-07-16 + + + -116.865460,36.460850,-55.60 + + + + dateTime (YYYY-MM-DDThh:mm:ssZ) + + 1997-07-16T07:30:15Z + + + -116.865460,36.460850,-55.60 + + + + dateTime (YYYY-MM-DDThh:mm:sszzzzzz) + + 1997-07-16T10:30:15+03:00 + + + -116.865460,36.460850,-55.60 + + + + diff --git a/reference/xsddatetime~kml.csv b/reference/xsddatetime~kml.csv new file mode 100644 index 000000000..0bcc26dcf --- /dev/null +++ b/reference/xsddatetime~kml.csv @@ -0,0 +1,6 @@ +No,Latitude,Longitude,Name,Altitude,Date,Time +1,36.460850,-116.865460,"gYear (YYYY)",-55.6,1997/01/01,00:00:00 +2,36.460850,-116.865460,"gYearMonth (YYYY-MM)",-55.6,1997/07/01,00:00:00 +3,36.460850,-116.865460,"date (YYYY-MM-DD)",-55.6,1997/07/16,00:00:00 +4,36.460850,-116.865460,"dateTime (YYYY-MM-DDThh:mm:ssZ)",-55.6,1997/07/16,07:30:15 +5,36.460850,-116.865460,"dateTime (YYYY-MM-DDThh:mm:sszzzzzz)",-55.6,1997/07/16,07:30:15 diff --git a/testo.d/kml.test b/testo.d/kml.test index 3a65cb6c6..212e3cbea 100644 --- a/testo.d/kml.test +++ b/testo.d/kml.test @@ -100,3 +100,8 @@ gpsbabel -i igc -f ${REFERENCE}/track/92GV66G1.igc -o kml,floating=1,track=1,poi compare ${REFERENCE}/track/92GV66G1.igc.kml ${TMPDIR}/92GV66G1.igc.kml gpsbabel -i igc -f ${REFERENCE}/track/92HV66G1.igc -o kml,floating=1,track=1,points=0 -F ${TMPDIR}/92HV66G1.igc.kml compare ${REFERENCE}/track/92HV66G1.igc.kml ${TMPDIR}/92HV66G1.igc.kml + +# verify kml:dateTimeType parsing +gpsbabel -i kml -f ${REFERENCE}/xsddatetime.kml -o unicsv,utc -F ${TMPDIR}/xsddatetime~kml.csv +compare ${REFERENCE}/xsddatetime~kml.csv ${TMPDIR}/xsddatetime~kml.csv + -- 2.30.2